Micron DDR3模型学习

您所在的位置:网站首页 ddr 容量 Micron DDR3模型学习

Micron DDR3模型学习

2023-04-07 14:29| 来源: 网络整理| 查看: 265

1、模型参数

本文转自DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例),该文章中举例的DDR3为美光1Gb DDR3 SDRAM模型。

2、DDR3基础 2.1 DDR3存储阵列,Bank、Row、Col

首先,问们先了解一下内存的大体结构工作流程,这样会比较容易理解这些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。 DDR3的内部是一个存储阵列,将数据“填进去”,你可以想象成一个表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确的找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可以称为存储单元,那么这个表格(存储阵列)就是逻辑Bank(Logical Bank)。

DDR3内部Bank示意图

DDR3内部Bank示意图,这是一个N×N的阵列,B单表Bank地址编号,C表示列地址编号,R代表行地址编号。 如果寻址命令是B1、R2、C6,就能确定地址是图中红格的位置,目前DDR3内存芯片基本上都是8个Bank设计,也就是说一共有8个这样的表格,Bank地址位宽为3。 寻址流程也就是先指定Bank地址,再指定Row(行)地址,最后指定Col(列)地址,最终确定寻址单元。 目前DDR3系统而言,还存在物理Bank的概念,这是对内存子系统的一个相关术语,并不针对内存芯片。内存为了保证CPU正常工作,必须一次传输完CPU数据总线的位宽,单位是bit(位)。控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称为物理Bank(Physical Bank,有资料称之为Rank,好像在Synopsys资料中就是Rank)的位宽。目前这个位宽基本为64bit。

2.2 DDR3时序 2.2.1 tRCD

在实际工作中,Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(读或者写,we_n=1为读,we_n=0为写),这两个命令也是同时发出的,所以一般会以“读/写命令”表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为3个时钟周期,具体到确切的时间,则要根据时钟频率而定,DDR3-800,tRCD=3,代表30ns的延迟。

该图表示tRCD=3时的波形图 2.2.2 CL

接下来,相关的列地址被选中之后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的I/O接口之间还需要一定的时间(数据触发本身就有延迟,而且还需要进行信号放大),这段时间就是非常著名的CL(CAS Latency,列地址脉冲选通潜伏期)。CL的数值与tRCD一样,以时钟周期数表示。如DDR3-800,时钟频率为100MHz,时钟周期为10ns,如果CL=2就意味着20ns的潜伏期。不过CL只是针对读取操作。

2.2.3 tAC

由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由S-AMP负责,一个存储体对应一个S-AMP通道。但它要有一个准备时间才能保证信号的发送强度(事前还要进行电压比较以进行逻辑电平的判断),因此从数据I/O总线上有数据输出之前的一个时钟上升沿开始,数据即已传向S-AMP,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据I/O总线进行输出,这段时间我们称之为tAC(Access Time from CLK,时钟触发后的访问时间)。

tAC与tCL 2.2.4 BL

目前内存的读写基本都是连续的,因为与CPU交换的数据量以一个Cache Line(即CPU内Cache的存储单位)的容量为准,一般为64字节。而现有的Rank位宽为8字节(64bit),那么就要一次连续传输8次,这就涉及到经常遇到的突发传输的概念。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。 在进行突发传输时,只要指定其实列地址与突发长度,内存就会依次的自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续的提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般是tRCD+CL)外,其后每个数据只需要一个周期即可获得。

burst_len=4

突发连续读取模式:只要制定起始列地址与突发长度,后续的寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与BL相同)即可做到连续的突发传输。

2.2.5 DQM

如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或者输入的数据。这里要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。DQM由北桥控制,为了精确屏蔽一个P-Bank位宽中的每个字节,每个DIMM都有8个DQM信号线,每个信号针对一个字节。这样,对于4bit位宽芯片,两个芯片公用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于16bit位宽芯片,则需要2个DQM引脚。

2.2.6 tRP

在数据读取完后,为了腾出读出放大器以供同意Bank内其他行的寻址并传输数据,内存芯片将进行预充电的操作来关闭当前工作行。还是以上面的Bank示意图为例,当前寻址的存储单元是B1、R2、C6,如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP(Row Precharge Period,行预充电有效周期),单位也是时钟周期数。

预充电

在不同Bank间读写也是这样,先把原来数据写回,再激活新的Bank/Row。

2.2.7 DQS

数据选取脉冲,即DQS,是DDR中的重要功能,他的功能主要用来再一个时钟周期内准确区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,再写入时它用来传送由北桥发来的DQS信号,读取时,则由芯片生成DQS向北桥发送。完全可以说,他就是数据的同步信号。 在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS发送到DQS生成的间隔。DQS生成时,芯片内部的预取已经完毕了,由于预取的原因,实际的数据传出可能会提前与DQS发生(数据提前于DQS传出)。由于是并行输出,DDR内存对tAC也有一定的要求,对于DDR266,tAC的允许范围时±0.75ns,对于DDR333,则是±0.7ns,有关它们的时序图示见前文,其中CL里包含了一段DQS的导入期。 DQS在读取时与数据同步传输,那么接收时也是以DQS的上下沿为准吗?不,如果以DQS的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处时,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。

DQS

在写入时,以DQS的高/低电平期中部为为数据周期分割点,而不是上下沿,但数据的接收触发为DQS的上/下沿。

3、DDR容量计算

图为X8位宽的单颗DDR3架构图,行(Row)地址线复用14根,列(Col)地址线复用10根,Bank数量为8(位宽3),I/O Buffer通过8组数位线(DQ0~7)完成对外通信,故此单颗DDR3芯片的容量为214×210×8×8,结果为1Gbit=128MByte。 如果我们要做成容量为1GB的内存条,则需要8颗这样的DDR3内存芯片,每颗芯片含8根数位线(DQ0~7)则总位宽为64bit,正好用了一个Rank。 如果用128MB的DDR3芯片去做2GB内存条,最好选用4bit数据位宽(DQ0~3),数量为16颗,这样可以也只用一个Rank。 如果用128MB的DDR3芯片去做容量为8GB的内存条,则需要64颗128MB的DDR3,这样位宽高达64×4=256bit,要做成4个Rank。

DDR3结构框图

4、管脚功能 5、状态机 状态转换

ACT = ACTIVATE PREA = PRECHARGE ALL SRX = 自刷新推出 MPR = 多用处寄存器 READ = RD,RDS4,RDS8 WRITE=WR,WRS4,WRS8 MRS=模式寄存器集 READ AP=RDAP,RDAPS4,RDAPS8 WRITE=WRAP,WRAPS4,WRAPS8 DE=掉电进入 REF=REFRESH ZQCL=ZQ LONG CALIBRATION PDX=掉电推出 RESET=启动复位过程 ZACS=ZA SHORT CALIBTATION PRE=预充电 SRE=自刷新进入 …… MRS:MODE Register Set,模式寄存器配置。为了应用的灵活性,不同的功能、特征和模式等内容,可以在四个DDR3上的Mode Register进行灵活配置。 模式寄存器MR没有默认值,因此模式寄存器MR必须在上电或者复位后被完全初始化,才能使DDR正常工作。正常工作模式下,MR也可以被重新写入。模式寄存器的配置命令周期为tMRD,换句话说,tMRD为两次配置的最小间隔周期。具体时序图如下所示。

tMRD Timing

模式寄存器分为MR0、MR1、MR2和MR4。MR0用来存储DDR3的不同操作模式的数据,包括:突发长度(Burst Length)、读取突发种类、CAS长度、测试模式和DLL复位等。MR1用来存储是否使能DLL、输出驱动长度、Rtt_Nom、额外长度、写电平使能等。MR2用来存储控制更新的特性、Rtt_WR阻抗和CAS写长度。MR3用来控制MPR。 ……

6、工作原理

根据上述基本理解和状态机,可以对DDR3的工作原理进行基本的描述和理解。 首先,芯片上电。在上电后,有最少200μs的平稳电平后,等待500μs CKE使能,在这段时间芯片开始状态初始化,该过程与外部时钟无关。在时钟使能信号前(CKE),必须保持最小10ns或者5个时钟周期。除此之外,还需要一个NOP命令或者Deselect命令出现在CKE前面。然后DDR3开始了ODT过程,在复位和CKE有效之前,ODT始终为高阻。在CKE使能为高后,等待tXPR(最小复位CKE时间),然后开始从MRS中读取模式寄存器。然后加载MR2、MR3寄存器,配置应用设置;然后使能DLL,并对DLL复位。接着启动ZQCL命令,开始ZQ校准过程。等待校准结束后,DDR3就进入了可以正常操作的状态。通过上述步骤,就完成了基本的配置过程。下面将进行结合CH1控制器FPGA,说明对DDR3相关的配置。

DDR3 Command MR0寄存器配置举例 数据写入时序

以上图为例,CS#、RAS#、CAS#、WE#为L、L、H、H,则指令为Row/Bank Active;随后CS#拉高,Command无效。 在第四个时钟周期,这4个信号变为L、H、L、H,对照表格,指令为Read,经过几个时钟周期延迟后读取数据。

7、基本功能

DDR3 SDRAM是高速动态随机存取存储器,内部配置有8个Bank。DDR3 SDRAM使用8n预取结构,以获得高速操作。8n预取结构同接口组合起来以完成在I/O脚上个每个时钟两个数据字的传输。DDR3 SDRAM的一个单词读或写操作由两部分组成:一是在内部DRAM核中进行的8n位宽四个时钟数据传输,另一个是在I/O脚上进行的两个对应n位宽、半时钟周期的数据传输。(?) 对DDR3 SDRAM的读写操作是有方向性的突发操作,从一个选择的位置开始,突发长度是8或者是一个以编程序列的长度为4的Chopped突发方式。操作开始于Active命令,随后是一个Read/Write命令。Active命令同时并发,并带地址位以选择Bank和Row地址(Ba0Ba2选择Banl,A0A15选择Row)。而Read/Write命令并发并带突发操作的起始Col地址,并确定是否发布自动预充电命令(通过A10)和选择BC4或BL8模式(通过A12,如果寄存器使能)。 在正常操作前,DDR3 SDRAM必须要以定义好的方式上电和初始化。

8、DDR3与DDR2 8.1 DDR2的瓶颈

替代DDR2的主要原因是,DDR2的数据传输频率发展到800MHz时,内核工作频率已经达到了200MHz,因此,再向上提升较为困难。这就需要采用新的技术来保证速度的可持续发展。另外,也是由于速度提高的缘故,内存地址/命令与控制总线需要全新的拓扑结构,而且业界也要求内存具有更低的功耗。 就具体设计而言,DDR3与DDR2的基础架构并没有本质的不同,从某种角度讲,DDR3是为了解决DDR2发展所面临的限制而催生的产物。 由于DDR2内存的各种不足,制约了其进一步的广泛应用,DDR3内存的出现,正是为了解决DDR2内存出现的问题,具体有:更高的外部数据传输率、更先进的地址/命令与控制总线的拓扑架构、在保证性能的同时将能耗进一步降低。 为了满足这些要求,DDR3内存在DDR2内存的基础上所作的主要改进有:8bit预取设计,DDR2为4bit预取,这样DRAM内核的频率只有接口的1/8,DDR3-800的核心工作频率只有100MHz;采用点对点的拓扑家啊狗,减轻地址/命令与控制总线的负担;采用100nm以下的生产工艺,将工作电压从1.8V降低到1.5V,增加异步复位(Reset)与ZQ校准功能。

8.2 DDR3的技术改进

从技术上来看,DDR3对于DDR2的不足进行了一定的改进。

逻辑Bank数量

DDR2 SDRAM中有4 Bank和8 Bank的设计,目的是为了应对未来大容量芯片的需求,而DDR3将只有8 Bank。

封装

DDR3新增了一些功能,引脚有所增加,8bit芯片采用78球FBGA封装,16bit芯片采用96求FBGA封装,而DDR2则有60/68/84球FBGA封装三种规格。并且DDR3必须是绿色封装,不能含有任何有害物质。

突发长度(BL,Burst Length)

由于DDR3的预取为8bit,所以突发传输周期(BL,Burst Length)也固定为8。而对于DDR2和早期DDR架构的系统,BL=4是常用的,DDR3为此增加了一个4-bit Burst Chop(突发突变)模式,即由一个BL=4的读取操作加上一个BL=4的写入操作来合成一个BL=8的数据突发传输,届时可以通过A12地址线来控制这一突发模式。而且需要指出的是,任何突发中断操作都将在DDR3内存中予以禁止,且不予支持,取而代之的是更灵活的突发传输控制(如4bit顺序突发)。

寻址时序(Timing)

就像DDR2从DDR转变而来后延迟周期数增加了一样,DDR3的CL周期也将比DDR2有所提高。DDR2的CL范围一般在2至5之间,而DDR3则在5至11之间,且附加延迟(AL)的设计也有所变化。DDR2时AL的范围是0至4,而DDR3时AL有三种选择,分别是0、CL-1和CL-2。另外,DDR3还新增一个时序参数——写入延迟(CWD),这一参数将根据具体的工作频率而定。

8.2 DDR3的新增功能

DDR3还有部分DDR2内存所不具备的功能,这些功能让DDR3内存的表现有了根本性的提高。

异步复位(Reset)

异步复位是DDR3新增的一个重要功能,并为此专门准备了一个引脚。DRAM业界已经很早以前就要求增加这一共功能,如今终于在DDR3上实现。这一引脚将使DDR3的初始化处理变得简单。当Reset命令有效时,DDR3内存将停止所有的操作,并切换至最少量活动的状态,以节约电力。在Reset期间,DDR3内存将关闭内在的大部分功能,所以有数据接收与发送都将关闭。所有内部的程序装置将复位,DLL(延迟锁相环路)与时钟电路将停止工作,而且不理睬数据总线上的任何动静,这样使DDR3达到最节省电力的目的。

ZQ校准

ZQ也是一个新增的引脚,在这个引脚上接有一个240欧姆的低公差参考电阻。这个引脚通过一个命令集,通过片上校准引擎(ODCE,On-Die Calibration Engine)来自动校验数据输出驱动器导通电子和ODT的中介电阻值。当系统发出这一指令之后,将用相应的时钟周期(在加点与初始化之后用512个时钟周期,在退出自动刷新操作后用256个时钟周期,在其他情况下用64个时钟周期)对导通电阻和ODT电阻进行重新校准。

参考电压分成两个

对于内存系统工作非常重要的参考电压信号VREF,在DDR3系统中将分为两个信号,一个使为命令与地址信号服务的VREFCA,另一个是为数据总线服务的VREFDQ,它将有效的提高系统数据总线的信噪等级。

根据温度自动自刷新(SRT,Self-Refresh Temperature) 局部自刷新(PASR,Partial Array Self-Refresh) 点对点连接(P2P,Point to Point)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3